//+------------------------------------------------------------------+ //| Ten Stochs Wave EA.mq4 | //| Copyright © 2008, TradingSytemForex | //| http://www.tradingsystemforex.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, TradingSytemForex" #property link "http://www.tradingsystemforex.com" #define OrSt "Ten Stochs Wave EA" extern string STO="---------------- Stochs"; extern double First_Stoch_KP=6; extern double Stoch_HLevel=80; extern double Stoch_MLevel=50; extern double Stoch_LLevel=20; extern string LM="---------------- Lot Management"; extern double Lots=0.1; extern bool MM=false; //money management extern double Risk=2; //risk in percentage extern string TSTB="---------------- TP SL TS BE"; bool RealSL_Enabled=false; int RealSL=5; //stop loss under 15 pīps bool RealTP_Enabled=false; int RealTP=10; //take profit under 10 pīps extern int SL=88; //stop loss extern int TP=94; //take profit extern int TS=0; //trailing stop extern int TS_Step=1; //trailing stop step extern int BE=0; //breakeven extern string EXT="---------------- Extras"; extern bool Reverse=false; extern bool Add_Positions=true; //positions cumulated extern int MaxOrders=100; //maximum number of orders extern int Magic=0; int Slip=3;static int TL=0;double MML=0; // expert start function int start(){int j=0,limit=1;double BV=0,SV=0;BV=0;SV=0;double STOM1,STOM2,STOM3,STOM4,STOM5,STOM6,STOM7,STOM8,STOM9,STOM10,STOM1b,STOM2b,STOM3b,STOM4b,STOM5b,STOM6b,STOM7b,STOM8b,STOM9b,STOM10b,STOM1c,STOM2c,STOM3c,STOM4c,STOM5c,STOM6c,STOM7c,STOM8c,STOM9c,STOM10c; if(CntO(OP_BUY,Magic)>0) TL=1;if(CntO(OP_SELL,Magic)>0) TL=-1;for(int i=1;i<=limit;i++){ STOM1=iStochastic(NULL,0,First_Stoch_KP,3,3,MODE_SMA,0,MODE_MAIN,i);STOM1b=iStochastic(NULL,0,First_Stoch_KP,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM1c=iStochastic(NULL,0,First_Stoch_KP,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM2=iStochastic(NULL,0,First_Stoch_KP+1,3,3,MODE_SMA,0,MODE_MAIN,i);STOM2b=iStochastic(NULL,0,First_Stoch_KP+1,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM2c=iStochastic(NULL,0,First_Stoch_KP+1,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM3=iStochastic(NULL,0,First_Stoch_KP+2,3,3,MODE_SMA,0,MODE_MAIN,i);STOM3b=iStochastic(NULL,0,First_Stoch_KP+2,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM3c=iStochastic(NULL,0,First_Stoch_KP+2,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM4=iStochastic(NULL,0,First_Stoch_KP+3,3,3,MODE_SMA,0,MODE_MAIN,i);STOM4b=iStochastic(NULL,0,First_Stoch_KP+3,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM4c=iStochastic(NULL,0,First_Stoch_KP+3,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM5=iStochastic(NULL,0,First_Stoch_KP+4,3,3,MODE_SMA,0,MODE_MAIN,i);STOM5b=iStochastic(NULL,0,First_Stoch_KP+4,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM5c=iStochastic(NULL,0,First_Stoch_KP+4,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM6=iStochastic(NULL,0,First_Stoch_KP+5,3,3,MODE_SMA,0,MODE_MAIN,i);STOM6b=iStochastic(NULL,0,First_Stoch_KP+5,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM6c=iStochastic(NULL,0,First_Stoch_KP+5,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM7=iStochastic(NULL,0,First_Stoch_KP+6,3,3,MODE_SMA,0,MODE_MAIN,i);STOM7b=iStochastic(NULL,0,First_Stoch_KP+6,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM7c=iStochastic(NULL,0,First_Stoch_KP+6,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM8=iStochastic(NULL,0,First_Stoch_KP+7,3,3,MODE_SMA,0,MODE_MAIN,i);STOM8b=iStochastic(NULL,0,First_Stoch_KP+7,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM8c=iStochastic(NULL,0,First_Stoch_KP+7,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM9=iStochastic(NULL,0,First_Stoch_KP+8,3,3,MODE_SMA,0,MODE_MAIN,i);STOM9b=iStochastic(NULL,0,First_Stoch_KP+8,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM9c=iStochastic(NULL,0,First_Stoch_KP+8,3,3,MODE_SMA,0,MODE_MAIN,i+2); STOM10=iStochastic(NULL,0,First_Stoch_KP+9,3,3,MODE_SMA,0,MODE_MAIN,i);STOM10b=iStochastic(NULL,0,First_Stoch_KP+9,3,3,MODE_SMA,0,MODE_MAIN,i+1);STOM10c=iStochastic(NULL,0,First_Stoch_KP+9,3 ,3,MODE_SMA,0,MODE_MAIN,i+2); if((STOM1b>Stoch_HLevel && STOM1Stoch_HLevel && STOM2Stoch_HLevel && STOM3Stoch_HLevel && STOM4Stoch_HLevel && STOM5Stoch_HLevel && STOM6Stoch_HLevel && STOM7Stoch_HLevel && STOM8Stoch_HLevel && STOM9Stoch_HLevel && STOM10Stoch_MLevel && STOM1Stoch_MLevel && STOM2Stoch_MLevel && STOM3Stoch_MLevel && STOM4Stoch_MLevel && STOM5Stoch_MLevel && STOM6Stoch_MLevel && STOM7Stoch_MLevel && STOM8Stoch_MLevel && STOM9Stoch_MLevel && STOM10Stoch_LLevel && STOM1Stoch_LLevel && STOM2Stoch_LLevel && STOM3Stoch_LLevel && STOM4Stoch_LLevel && STOM5Stoch_LLevel && STOM6Stoch_LLevel && STOM7Stoch_LLevel && STOM8Stoch_LLevel && STOM9Stoch_LLevel && STOM10Stoch_HLevel && STOM1Stoch_HLevel && STOM2Stoch_HLevel && STOM3Stoch_HLevel && STOM4Stoch_HLevel && STOM5Stoch_HLevel && STOM6Stoch_HLevel && STOM7Stoch_HLevel && STOM8Stoch_HLevel && STOM9Stoch_HLevel && STOM10Stoch_MLevel && STOM1Stoch_MLevel && STOM2Stoch_MLevel && STOM3Stoch_MLevel && STOM4Stoch_MLevel && STOM5Stoch_MLevel && STOM6Stoch_MLevel && STOM7Stoch_MLevel && STOM8Stoch_MLevel && STOM9Stoch_MLevel && STOM10Stoch_LLevel && STOM1Stoch_LLevel && STOM2Stoch_LLevel && STOM3Stoch_LLevel && STOM4Stoch_LLevel && STOM5Stoch_LLevel && STOM6Stoch_LLevel && STOM7Stoch_LLevel && STOM8Stoch_LLevel && STOM9Stoch_LLevel && STOM10Stoch_HLevel && STOM2bStoch_HLevel && STOM3bStoch_HLevel && STOM4bStoch_HLevel && STOM5bStoch_HLevel && STOM6bStoch_HLevel && STOM7bStoch_HLevel && STOM8bStoch_HLevel && STOM9bStoch_HLevel && STOM10bStoch_HLevel)|| (STOM1bStoch_MLevel && STOM2bStoch_MLevel && STOM3bStoch_MLevel && STOM4bStoch_MLevel && STOM5bStoch_MLevel && STOM6bStoch_MLevel && STOM7bStoch_MLevel && STOM8bStoch_MLevel && STOM9bStoch_MLevel && STOM10bStoch_MLevel)|| (STOM1bStoch_LLevel && STOM2bStoch_LLevel && STOM3bStoch_LLevel && STOM4bStoch_LLevel && STOM5bStoch_LLevel && STOM6bStoch_LLevel && STOM7bStoch_LLevel && STOM8bStoch_LLevel && STOM9bStoch_LLevel && STOM10bStoch_LLevel)|| (STOM1cStoch_HLevel && STOM2cStoch_HLevel && STOM3cStoch_HLevel && STOM4cStoch_HLevel && STOM5cStoch_HLevel && STOM6cStoch_HLevel && STOM7cStoch_HLevel && STOM8cStoch_HLevel && STOM9cStoch_HLevel && STOM10cStoch_HLevel)|| (STOM1cStoch_MLevel && STOM2cStoch_MLevel && STOM3cStoch_MLevel && STOM4cStoch_MLevel && STOM5cStoch_MLevel && STOM6cStoch_MLevel && STOM7cStoch_MLevel && STOM8cStoch_MLevel && STOM9cStoch_MLevel && STOM10cStoch_MLevel)|| (STOM1cStoch_LLevel && STOM2cStoch_LLevel && STOM3cStoch_LLevel && STOM4cStoch_LLevel && STOM5cStoch_LLevel && STOM6cStoch_LLevel && STOM7cStoch_LLevel && STOM8cStoch_LLevel && STOM9cStoch_LLevel && STOM10cStoch_LLevel)) {if(Reverse) SV=1; else BV=1; break;}} // expert money management if(MM){if(Risk<0.1 || Risk>100) {Comment("Invalid Risk Value."); return(0);} else {MML=MathFloor((AccountFreeMargin() *AccountLeverage()*Risk*Point*100)/(Ask*MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_MINLOT )))*MarketInfo(Symbol(),MODE_MINLOT );}} if(MM==false){MML=Lots;} // expert init positions int cnt=0,OP=0,OS=0,OB=0,CS=0,CB=0;OP=0;for(cnt=0; cnt=1){OS=0; OB=0;}OB=0;OS=0;CB=0;CS=0; // expert conditions to open position if(SV>0){OS=1;OB=0;}if(BV>0){OB=1;OS=0;} // expert conditions to close position if((SV>0) || (RealSL_Enabled && (OrderOpenPrice()-Bid)/Point>=RealSL)||(RealTP_Enabled && (Ask-OrderOpenPrice())/Point>=RealTP)){CB=1;} if((BV>0) || (RealSL_Enabled && (Ask-OrderOpenPrice())/Point>=RealSL)||(RealTP_Enabled && (OrderOpenPrice()-Bid)/Point>=RealTP)){CS=1;} for(cnt=0;cnt0){if((pb-OrderOpenPrice())>BE*pp){if((OrderStopLoss()-OrderOpenPrice())<0){ModSL(OrderOpenPrice()+0*pp);}}} if(TS>0){if((pb-OrderOpenPrice())>TS*pp){if(OrderStopLoss()0){if((OrderOpenPrice()-pa)>BE*pp){if((OrderOpenPrice()-OrderStopLoss())<0){ModSL(OrderOpenPrice()-0*pp);}}} if (TS>0){if (OrderOpenPrice()-pa>TS*pp){if (OrderStopLoss()>pa+(TS+TS_Step-1)*pp || OrderStopLoss()==0){ModSL(pa+TS*pp);return;}}}}} //expert stoploss void ModSL(double ldSL){bool fm;fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldSL,OrderTakeProfit(),0,CLR_NONE);} //expert add positions function bool AddP(){int _num=0; int _ot=0; for (int j=0;j_ot) _ot=OrderOpenTime();}} if(_num==0) return(true);if(_num>0 && ((Time[0]-_ot))>0) return(true);else return(false);}